#ifndef EDITBOX_H
#define EDITBOX_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QString>
#include <QIcon>
#include <QRadioButton>
#include <QFrame>
#include "LoginWidget_global.h"
#include "../BaseWidgets/FramelessWidget.h"

namespace UserManagementSystem {
class LOGINWIDGET_EXPORT EditBox:public FramelessWidget
{
    Q_OBJECT
public:
    EditBox(QWidget* parent=nullptr,const bool is_add_end=false);

    ///@brief readIcon
    bool ReadLeftIcon(const QString &path,QIcon * icon);


    ///@brief 获取输入框
    QLineEdit* GetInputBox()const;

    ///@brief 获得左侧的图标控件
    QIcon* GetLeftIconPointer()const;
    QIcon* GetShowIconPointer()const;
    QIcon* GetNoShowIconPointer()const;

    ///@brief 初始化原始布局
    void InitDefaultLayout();

    ///@brief 初始化控件样式
    void InitDefaultStyle();
private:
    ///@brief 绘制圆角
    virtual void paintEvent(QPaintEvent *event) override;

    ///@brief 点击隐藏按钮的槽函数
    void On_hideBtn_clicked();



private:
    ///@brief 一个主布局
    QHBoxLayout * m_mainLayout=nullptr;

    ///@brief 一个左侧的图标
    QLabel * m_leftIconLabel=nullptr;
    QIcon * m_leftIcon=nullptr;
    QIcon* m_showIcon=nullptr;
    QIcon* m_noshowIcon=nullptr;

    /// @brief 一个竖线
    QFrame* m_vLine=nullptr;

    /// @brief 一个输入框
    QLineEdit* m_inputEdit=nullptr;

    ///@brief 一个按钮，用于切换是否隐藏密码
    QPushButton *m_hideBtn=nullptr;

    /// @brief 一个bool变量，是否有闭眼icon内容
    bool m_isEnd=false;

    ///@brief 一个bool变量，当前是显示还是不显示窗口
    bool m_isPasswardVisible=false;
};

}

#endif // EDITBOX_H
